home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
language
/
gemfst18.lzh
/
GEMFAST.H
< prev
next >
Wrap
C/C++ Source or Header
|
1992-12-06
|
30KB
|
735 lines
/* tab expansion/compression should be set to 4 */
/**************************************************************************
* GEMFAST.H - Header file for GEM programming.
*
* This header file contains items compatible with both GEMDEFS and OBDEFS
* from the Alcyon system. Note that there are no 'extern' definitions
* for the GEM functions, because they all return a signed int and work
* fine as autodefined functions.
*
* Maintenance:
* 02/29/92 - v1.8
* > Added new options for new utility functions.
* > Added extern declarations for all global vars.
* > Added macro to map frm_dsdial() to frm_dsdialog() with
* parms in the new order.
* > Added macros mapping appl_init/exit to apl_xinit/xexit,
* so that all aps automatically get new extended init that
* fills in the new global vars. New utils REQUIRE that
* these vars be init'd; think twice before changing this!
* > Changed FDADDR datatype from char* to void*.
* 05/26/90 - v1.4
* > Added RSHDR structure for imbedded resource support.
* > Fixed all structures which defined pointers as 'long'...
* - ICONBLK ib_pmask, ib_pdata, ib_ptext
* - BITBLK bi_pdata
* - USERBLK ub_code
* - PARMBLK pb_tree
* All of these structure elements now define the proper ptr.
* > Added AESUTIL_A, AESFAST_A and VDIFAST_A symbols. This
* allows specific indication of the presence or abscence of
* the bindings libraries, allowing a programmer to use the
* GEMFAST.H header without using the rest of GemFast. This
* also allows conditional compilation code to be more
* specific: it can now test for the presence of the header
* file (and handle the differences in the structure defs),
* and it can separately test for the presence of the libs,
* and the extended functions available therein.
* 12/03/89 - v1.3
* > Renamed a lot of functions, a name compatibility block was
* added at the end of this file to smooth the transition.
* > Added NO_OBJECT, MU_MENTRY, MU_MEXIT to defines.
* > Added XMULTI struct, even though it really belongs to v2.0
*************************************************************************/
#pragma idempotent /* sozobon: prevent multiple inclusion */
#ifndef GEMFAST_H /* Prevent multiple inclusion */
#define GEMFAST_H 1 /* Tell the world GEMFAST header is used */
#define GEMF_VERSION 0x0180 /* Tell the world we are v1.80 */
#define AESUTIL_A 1 /* Tell the world AESFAST utils available */
#define AESFAST_A 1 /* Tell the world AESFAST lib is available */
#define VDIFAST_A 1 /* Tell the world VDIFAST lib is available */
/* VDI inside fill styles */
#define IS_HOLLOW 0
#define IS_SOLID 1
#define IS_PATTERN 2
#define IS_HATCH 3
#define IS_UDPTRN 4
/* VDI inside fill patterns */
#define IP_HOLLOW 0
#define IP_1PTRN 1
#define IP_2PTRN 2
#define IP_3PTRN 3
#define IP_4PTRN 4
#define IP_5PTRN 5
#define IP_6PTRN 6
#define IP_SOLID 7
/* VDI normal graphics drawing modes */
#define MD_REPLACE 1
#define MD_TRANS 2
#define MD_XOR 3
#define MD_ERASE 4
/* VDI bit blt rules */
#define ALL_WHITE 0
#define S_AND_D 1
#define S_AND_NOTD 2
#define S_ONLY 3
#define NOTS_AND_D 4
#define D_ONLY 5
#define S_XOR_D 6
#define S_OR_D 7
#define NOT_SORD 8
#define NOT_SXORD 9
#define D_INVERT 10
#define NOT_D 10
#define S_OR_NOTD 11
#define NOT_S 12
#define NOTS_OR_D 13
#define NOT_SANDD 14
#define ALL_BLACK 15
/* font types */
#define IBM 3
#define SMALL 5
/* evnt_multi options */
#define MU_KEYBD 0x0001
#define MU_BUTTON 0x0002
#define MU_M1 0x0004
#define MU_M2 0x0008
#define MU_MESAG 0x0010
#define MU_TIMER 0x0020
/* evnt_mouse options */
#define MU_MENTRY 0x0000
#define MU_MEXIT 0x0001
/* keyboard states */
#define K_RSHIFT 0x0001
#define K_LSHIFT 0x0002
#define K_CTRL 0x0004
#define K_ALT 0x0008
/* event message values */
#define MN_SELECTED 10
#define WM_REDRAW 20
#define WM_TOPPED 21
#define WM_CLOSED 22
#define WM_FULLED 23
#define WM_ARROWED 24
#define WM_HSLID 25
#define WM_VSLID 26
#define WM_SIZED 27
#define WM_MOVED 28
#define WM_NEWTOP 29
#define AC_OPEN 40
#define AC_CLOSE 41
/* form_dial opcodes */
#define FMD_START 0
#define FMD_GROW 1
#define FMD_SHRINK 2
#define FMD_FINISH 3
/* rsrc_gaddr structure types */
#define ROOT 0 /* this name used by MWC */
#define R_TREE 0
#define R_OBJECT 1
#define R_TEDINFO 2
#define R_ICONBLK 3
#define R_BITBLK 4
#define R_STRING 5
#define R_IMAGEDATA 6
#define R_OBSPEC 7
#define R_TEPTEXT 8
#define R_TEPTMPLT 9
#define R_TEPVALID 10
#define R_IBPMASK 11
#define R_IBPDATA 12
#define R_IBPTEXT 13
#define R_BIPDATA 14
#define R_FRSTR 15
#define R_FRIMG 16
/* Window Attributes */
#define NAME 0x0001
#define CLOSER 0x0002
#define FULLER 0x0004
#define MOVER 0x0008
#define INFO 0x0010
#define SIZER 0x0020
#define UPARROW 0x0040
#define DNARROW 0x0080
#define VSLIDE 0x0100
#define LFARROW 0x0200
#define RTARROW 0x0400
#define HSLIDE 0x0800
/* wind_calc options */
#define WC_BORDER 0
#define WC_WORK 1
/* wind_get options */
#define WF_KIND 1
#define WF_NAME 2
#define WF_INFO 3
#define WF_WORKXYWH 4
#define WF_CURRXYWH 5
#define WF_PREVXYWH 6
#define WF_FULLXYWH 7
#define WF_HSLIDE 8
#define WF_VSLIDE 9
#define WF_TOP 10
#define WF_FIRSTXYWH 11
#define WF_NEXTXYWH 12
#define WF_RESVD 13
#define WF_NEWDESK 14
#define WF_HSLSIZE 15
#define WF_VSLSIZE 16
#define WF_SCREEN 17
/* wind_update options */
#define END_UPDATE 0
#define BEG_UPDATE 1
#define END_MCTRL 2
#define BEG_MCTRL 3
/* graf_mouse mouse types*/
#define ARROW 0
#define TEXT_CRSR 1
#define HOURGLASS 2 /* this name used by MWC */
#define BUSYBEE 2 /* because I always forget the underbar */
#define BUSY_BEE 2
#define BEE 2
#define POINT_HAND 3
#define FLAT_HAND 4
#define THIN_CROSS 5
#define THICK_CROSS 6
#define OUTLN_CROSS 7
#define USER_DEF 255
#define M_OFF 256
#define M_ON 257
/* max depth of search or draw */
#define MAX_DEPTH 8
/* value returned by objc_find(), et. al. */
#define NO_OBJECT -1
/* object types */
#define G_BOX 20
#define G_TEXT 21
#define G_BOXTEXT 22
#define G_IMAGE 23
#define G_USERDEF 24
#define G_PROGDEF 24
#define G_IBOX 25
#define G_BUTTON 26
#define G_BOXCHAR 27
#define G_STRING 28
#define G_FTEXT 29
#define G_FBOXTEXT 30
#define G_ICON 31
#define G_TITLE 32
/* object options */
#define NONE 0x0000
#define SELECTABLE 0x0001
#define DEFAULT 0x00